博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于spring3注解的google分页
阅读量:6906 次
发布时间:2019-06-27

本文共 4093 字,大约阅读时间需要 13 分钟。

  hot3.png

闲的无聊,用spring3的mvc写了一个google的分页,这个小列子是基于注解的控制部分如下package com.my.google;

import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.my.common.Dispatcher; /**  * @author 姜绵岳 * @version 创建时间:2011-4-9 下午05:02:51  * 一个类似google的分页的Action */@Controllerpublic class GoogleController{	/**	 * 一个类似谷歌的分页	 * @return	 */	@RequestMapping("/google")	public String google(HttpServletRequest request,HttpServletResponse response){		String pageNum=request.getParameter("page");	//当前页		int page=0;		if(null==pageNum||"".equals(pageNum)){			page=1;		}else{			page=Integer.parseInt(pageNum);		}		String forwardUrl="google.do?page=";		List
list=new ArrayList
(); //存放模拟数据 for(int i=0;i<126;i++){ list.add("name xuehan "+i); } Dispatcher dispath=new Dispatcher(); Map map=dispath.getDispatch(forwardUrl, page, 10, list); request.setAttribute("list",map.get("list")); request.setAttribute("tag",map.get("tag")); return "google"; }}
 
package com.my.common;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author 姜绵岳 * @version 创建时间:2011-4-9 下午05:08:59 类说明 */public class Dispatcher
{ /** * action调用分页方法 参数:forwordUrl 分页url,page当前页数,count每页显示条数,list要分页的集合 */ public Map getDispatch(String forwardUrl, int page, int count, List
list) { int totalCount = list.size(); // 数据总条数 int totalPage = totalCount / count; // 总页数 if (totalCount % count > 0) { totalPage = totalCount / count + 1; // 如果总条数%总页数大于0侧总页数加1 } if (page < 0) { page = 1; // 如果当前页数小于1,设为1 } if (page > totalCount) { page = totalCount;// 如果当前页数大于总 } int currentCount = (page-1) * count; // 当前提条数 int endCount = 0; // 结束条数 if (totalCount - currentCount >= count) { endCount = currentCount + count; } else { endCount = totalCount - 1; } List newList = new ArrayList();// 存放返回集合 System.out.println("current " + currentCount + " end" + endCount); for (int i = currentCount; i <= endCount; i++) { newList.add(list.get(i)); } // 获得分页字符串 String tag = getTag(forwardUrl, page, totalPage, currentCount); Map map = new HashMap(); map.put("list", newList); map.put("tag", tag); return map; } /** * 分页标签书写 * * @param forwardUrl * @param page * @param totalPage * @param currentCount * @return */ private String getTag(String forwardUrl, int page, int totalPage, int currentCount) { StringBuffer sb = new StringBuffer(); if(1!=page){ sb.append("
" + "上一页" + " "); } if (totalPage <= 20) { if (totalPage >= 10) { if (totalPage - page > 10) { for (int i = 1; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; }else{ sb.append("
" + i + " "); } } } else { for (int i = 1; i <= totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } else { for (int i = 1; i < totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } else if (totalPage > 20) { if (page > 10) { if (totalPage - page > 10) { for (int i = page - 10; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; } else { sb.append("
" + i + " "); } } } else { for (int i = page - 10; i <= totalPage; i++) { if (i == page) { sb.append(i + " "); continue; } else { sb.append("
" + i + " "); } } } } else { for (int i = 1; i < page + 10; i++) { if (i == page) { sb.append(i + " "); continue; } sb.append("
" + i + " "); } } } if(totalPage!=page){ sb.append("
" + "下一页" + " "); } return sb.toString(); }}
 
 

 

转载于:https://my.oschina.net/zaxb/blog/1544067

你可能感兴趣的文章
我的《实战java高并发程序设计》纸质书上市了
查看>>
MySQL的InnoDB的幻读问题
查看>>
Pyinstaller Python ImportError: No module named publisher
查看>>
Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
查看>>
Cobbler + WindowsDHCP
查看>>
读《思维的乐趣matrix67数学笔记》
查看>>
linux25-代理服务器
查看>>
字母数字混合随机验证码
查看>>
前端开源项目周报0314
查看>>
SQL Server中DateTime与DateTime2的区别是什么
查看>>
LogStash日志分析展示系统
查看>>
连接池
查看>>
SQL语言
查看>>
操作系统CnetOS_7—systemd管理实践指南
查看>>
讯时O口MX8网关对接昆石软交换vos3000
查看>>
cocos2d-x滚屏简单实现
查看>>
屏幕适配
查看>>
svn大仓库拆小仓库迁移保留commit
查看>>
我的友情链接
查看>>
ThinkPHP的where方法的in操作符说明
查看>>